home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
BARNET
/
ACORNET
/
OLD-VERSIONS
/
ANET013A
/
!Acornet
/
Apps
/
!Finger
/
!Runimage
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1996-03-13
|
9KB
|
353 lines
Runimage for Finger
"Wimp_Initialise",200,&4B534154,"Finger"
,myhandle%
version$="0.13 (12-Mar-96)"
errorblock% 100
errbox(
indlength%=&400
fingers%=0
maxfingers%=20
maxfingerlength%=128
"OS_File",17,"<Finger$Dir>.Sprites"
,,,,spsize%
spsize%+=4
$fingerm%=99:
just silly numbers
mainm%=137
indirected% indlength%
wblk% &300
menublk% 28+24*maxfingers%
messb% &200
iconblock% 42
plblk% &100
sp% spsize%
fingerslot% (maxfingers%+1)*maxfingerlength%
!sp%=spsize%
&2E,266,sp%,"<Finger$Dir>.Sprites"
set_message_numbers
load_my_windows
load_messages
rewriteIcon(info%,3,version$)
get_fingers
PROCrewriteIcon(pane%,0,$fingerslot%)
all_over%=
mask%=1
errbox(
$+" "+
+". "+"OK to continue CANCEL to Quit",3):
errreturn%=2
openOnTop
SYS"Wimp_SetCaretPosition",pane%,0,0,0,-1,LEN FNgeticontext(pane%,0)
all_over%
"Wimp_CloseDown",myhandle%,&4B534154
"Wimp_Poll",mask%,plblk%
reason%
reason%
2 :
"Wimp_OpenWindow",,plblk%
3 : all_over%=
6 :
buttons
8 :
keyPress
9 :
menu_selection
17,18 :
receive
receive
plblk%!16
>%
Quit% : all_over%=
HelpRequest% :
plblk%!32
pane% :win$="PN":
sendhelp
sendhelp
"MessageTrans_Lookup",filedesc%,win$+
plblk%!36,plblk%+20,200
!plblk%=256
plblk%!12=plblk%!8
plblk%!16=HelpReply%
"Wimp_SendMessage",17,plblk%,plblk%!4
"<Finger$Dir>.fingers"
geticontext(pane%,0)
fingers%>0
i%=0
fingers%-1
\/
#x%,$(fingerslot%+maxfingerlength%*i%)
memtostring(ptr%)
?ptr%<>0
(?ptr%):ptr%+=1
reminder(mess$)
rewriteIcon(message%,0,mess$)
!wblk%=message%
"Wimp_GetWindowState",,wblk%
centreWindow(wblk%)
wblk%!28=-1
"Wimp_OpenWindow",,wblk%
keyPress
window%=plblk%!0
key%=plblk%!24
key%=13
finger
"Wimp_ProcessKey",key%
menu_selection
option%=plblk%!0
menu%
mainm% :
option%=1
all_over%=
C
option%=0
reminder(
)+" bytes free")
fingerm% :
finger_selection
"Wimp_GetPointerInfo",,plblk%
plblk%!8=1
finger_menu
finger_selection
6,129,0
&FF,&FF
,key%
key%=255
fingers%>0
cut(option%)
fingers%>0
E
rewriteIcon(pane%,0,$(fingerslot%+maxfingerlength%*option%))
)
"Wimp_GetCaretPosition",,plblk%
h
plblk%!0=pane%
plblk%!4=0
"Wimp_SetCaretPosition",pane%,0,0,0,-1,
geticontext(pane%,0)
buttons
button%=plblk%!8
window%=plblk%!12
icon%=plblk%!16
button%=2
main_menu
menu%=mainm%
"Wimp_CreateMenu",,menublk%,plblk%!0-64,plblk%!4
window%
pane% :
pane_buttons
message% :
closeWindow(message%)
IF button% AND &50 THEN
wblk%!4=pane%:SYS "Wimp_GetWindowState",,wblk%+4: REM drag whole window if not on card
!wblk%=pane%:wblk%!4=1:SYS "Wimp_DragBox",,wblk%
ENDIF
closeWindow(w%)
!wblk%=w%
"Wimp_CloseWindow",,wblk%
openOnTop
!plblk%=pane%
"Wimp_GetWindowState",,plblk%
centreWindow(plblk%)
plblk%!28=-1
"Wimp_OpenWindow",,plblk%
openwin(handle%)
!plblk%=handle%
"Wimp_GetWindowState",,plblk%
plblk%!28=-1
"Wimp_OpenWindow",,plblk%
pane_buttons
icon%
1 :
finger
2 :
3 :
remove
4 :
5 : all_over%=
6 :
finger_menu
cut(what%)
what%<>fingers%-1
i%=what%
fingers%-1
R $(fingerslot%+maxfingerlength%*i%)=$(fingerslot%+maxfingerlength%*(i%+1))
( $(fingerslot%-maxfingerlength%)=""
fingers%-=1
remove
(at%=
position(
geticontext(pane%,0))
at%<>-1
cut(at%)
fingers%<maxfingers%
position(
geticontext(pane%,0))=-1
F $(fingerslot%+maxfingerlength%*fingers%)=
geticontext(pane%,0)
fingers%+=1
reminder("Sorry I can only remember "+
maxfingers%+" fingers.")
position(f$)
return%
return%=-1
fingers%>0
i%=0
fingers%-1
$(fingerslot%+i%*maxfingerlength%)=f$
return%=i%
=return%
finger
place$=
geticontext(pane%,0)
"Wimp_StartTask","taskwindow -wimpslot 32k -quit -name FingerInfo "+
(34)+"finger "+place$+
exists(f$)
exists%
"XOS_File",17,(f$)
found%
found%=1
found%=2
exists%=
=exists%
rewriteIcon(wind%,icon%,text$)
!iconblock%=wind%
iconblock%!4=icon%
&400CE,,iconblock%
$iconblock%!28=text$
iconblock%!8=0
iconblock%!12=&400000
&400CD,,iconblock%
geticontext(window%,ic%)
!iconblock%=window%
iconblock%!4=ic%
&400CE,,iconblock%
=$iconblock%!28
centreWindow(b%)
getmodeInfo
width%=(b%!12-b%!4)
height%=(b%!16-b%!8)
x%=(xos%+1-width%)/2
y%=(yos%+1-height%)/2
b%!12=x%+width%:b%!4=x%
b%!16=y%+height%:b%!8=y%
getmodeInfo
"OS_ReadModeVariable",-1,11
,,Xpixels%
"OS_ReadModeVariable",-1,12
,,Ypixels%
"OS_ReadModeVariable",-1,4
,,XEigFactor%
"OS_ReadModeVariable",-1,5
,,YEigFactor%
A"xos%=(Xpixels%+1)<<XEigFactor%
B"yos%=(Ypixels%+1)<<YEigFactor%
get_fingers
fingers%=0
exists("<Finger$Dir>.Fingers")
J c%=
"<Finger$Dir>.Fingers"
rewriteIcon(pane%,0,
#c%)
fingers%<maxfingers%
M5 $(fingerslot%+maxfingerlength%*fingers%)=
fingers%+=1
RI$(fingerslot%+fingers%*maxfingerlength%)="" :
ensure one empty slot
errbox(msg$,flags%)
Xn!errorblock%=0:$(errorblock%+4)=msg$+
"Wimp_ReportError",errorblock%,flags%, "!Finger"
,errreturn%
main_menu
b%=wblk%
menu_head(b%,"MTITLE")
p%=b%+
"MTITLE"+1+6
menuitem(0,"BM0")
menuitem(&80,"BM1")
c !p%=0
"MessageTrans_MakeMenus",filedesc%,b%,menublk%,256
menublk%!(28+4)=info%
finger_menu
menwid%=9*16:
(title+1)*16
$menublk%="Fingers"
menublk%?12=7
menublk%?13=2
menublk%?14=7
menublk%?15=0
menublk%!20=44
menublk%!24=0
at%=menublk%+28
fingers%>0
i%=0
fingers%-1
inditem(at%,0 ,0 ,&07000111,fingerslot%+maxfingerlength%*i%)
$(fingerslot%+maxfingerlength%*i%)>9
menwid%=(
$(fingerslot%+maxfingerlength%*i%)+1)*16
{3 $fingerslot%="Sorry I don't have any fingers"
menwid%=32*16
inditem(at%,0 ,0 ,&07000111,fingerslot%+maxfingerlength%*i%)
at%!(-24)=&80
menu%=fingerm%
menublk%!16=menwid%
"Wimp_CreateMenu",,menublk%,plblk%!0+24,plblk%!4+22
menuitem(flags%,token$)
$p%=token$+
token$+1
p%=((p%+3)
!p%=flags%
p%!4=0
p%!8=&7000011
p%+=12
inditem(
where%,mflags%,submpointer%,miconflags%,item%)
where%!0=mflags%
where%!4=submpointer%
where%!8=miconflags%
!(where%+12)=item%
$(item%+
$item%+1)=""
!(where%+16)=item%+
$item%+1
PROCerrbox($item%+" "+$!(where%+16))
!!(where%+20)=1+
$!(where%+16)
where%+=24
menu_head(where%,t$)
$where%=t$
where%+=
t$+1
!where%=&70207
where%?4=44
where%?5=0
load_my_windows
"Wimp_OpenTemplate",,"<Finger$Dir>.Templates"
5indy%=indirected%:ind_end%=indirected%+indlength%
$pane% =
onewindow("Pane")
$info% =
onewindow("Info")
'message% =
onewindow("Message")
"Wimp_CloseTemplate"
onewindow(t$)
"Wimp_LoadTemplate",,wblk%,indy%,ind_end%,-1,t$,0
,,indy%
wblk%!64=sp%
"Wimp_CreateWindow",,wblk%
set_message_numbers
Quit% =0
HelpRequest% =&502
HelpReply% =&503
load_messages
m$="<Finger$Dir>.Messages"
"MessageTrans_FileInfo",,m$
flags%,,size%
"OS_Module",6,,,17+
,,filedesc%
$(filedesc%+16)=m$
"MessageTrans_OpenFile",filedesc%,filedesc%+16,messb%
"MessageTrans_CloseFile",filedesc%